package com.lnj.user.service;

import com.lnj.bean.dto.UserDTO;
import com.lnj.user.utils.AuthRequest;
import com.lnj.user.utils.AuthResponse;

import java.util.List;
import java.util.Optional;

public interface UserService {
    /**
     * 注册用户
     * @param userDTO
     * @return
     */
    public UserDTO registerUser(UserDTO userDTO);

    /**
     * 登录用户
     * @param authRequest
     * @return
     */
    public AuthResponse loginUser(AuthRequest authRequest);

    /**
     * 检查用户名是否存在
     * @param username
     * @return
     */
    public boolean checkUsernameExists(String username);

    /**
     * 根据用户ID获取用户信息
     * @param id
     * @return
     */
    public Optional<UserDTO> getUserById(Long id);

    /**
     * 获取所有用户信息
     * @return
     */
    public List<UserDTO> getAllUsers();

    /**
     * 更新用户信息
     * @param id
     * @param userDTO
     * @return
     */
    public UserDTO updateUser(Long id, UserDTO userDTO);

    /**
     * 注销用户
     * @param token
     */
    public boolean logout(String token);

}
